﻿/*----------------------------------------------------------------
    // Copyright (C) 2009 江苏华招网
    // 版权所有。 
    // 作者：庄金冬 
    //
    // 文件名：IBLL_Goods.cs
    // 文件功能描述：有关产品信息的业务逻辑接口
    // 创建标识：庄金冬2009-03-06
    //
    // 修改标识：
    // 修改描述：
    //
    // 修改标识：
    // 修改描述：
    //
    // 审核人：
    // 审核时间：
    // 审核说明：
 //----------------------------------------------------------------*/
using System;
using System.Collections.Generic;

using System.Text;
using HZ.DrugTrade.Model;
using System.Data;
namespace HZ.DrugTrade.IBLL
{
    /// <summary>
    /// 有关产品信息的业务逻辑接口
    /// </summary>
    public interface IBLL_Goods
    {

        /// <summary>
        /// 获取所有产品信息
        /// </summary>
        /// <returns>所有产品信息</returns>
        IList<Model.View.Goods> GetAllGoods();
        /// <summary>
        /// 添加产品信息（0失败;1成功）
        /// </summary>
        /// <param name="goods">产品信息</param>
        /// <returns>0失败;1成功</returns>
        /// <remarks>
        /// ID可以为空，其余字段一律不得为空
        /// 
        /// </remarks>
        int AddGoods(Goods goods);

        /// <summary>
        /// 更新产品信息（0失败;1成功）
        /// </summary>
        /// <param name="goods">产品信息</param>
        /// <returns>0失败;1成功</returns>
        int UpdateGoods(Goods goods);

        /// <summary>
        /// 条件查询商品耗材
        /// </summary>
        /// <param name="objquery"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalRecord"></param>
        /// <returns></returns>
        IList<HZ.DrugTrade.Model.View.TB_Goods_GZHC> GetGoodsByWhere_GZHC(object objquery, int currentPage, int pageSize, out int totalRecord);
        /// <summary>
        /// 条件查询所有产品
        /// </summary>
        /// <param name="where">查询用实体</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns></returns>
        IList<Model.View.Goods> GetAllGoodsByWhere(Model.Query.Goods where, int currentpage, int pagesize, out int totalrecord);

        /// <summary>
        /// 条件查询产品
        /// </summary>
        /// <param name="where">查询用实体</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns></returns>
        IList<Model.View.Goods> GetGoodsByWhere(Model.Query.Goods where, int currentpage, int pagesize, out int totalrecord);

        /// <summary>
        /// 条件查询非采购产品
        /// </summary>
        /// <param name="where">查询用实体</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns></returns>
        IList<Model.View.Goods> GetUnGoodsByWhere(Model.Query.Goods where, int currentpage, int pagesize, out int totalrecord);

         /// <summary>
        /// 获取一条中标或不中标商品
        /// </summary>
        /// <param name="goodsID">产品编号</param>
        /// <returns>产品实体</returns>
        HZ.DrugTrade.Model.View.Goods GetGoodsByID(string goodsID);



        /// <summary>
        /// 更新产品信息（0失败;1成功）
        /// </summary>
        /// <param name="goods">产品信息</param>
        /// <returns>0失败;1成功</returns>
        int UpdateGoods(Goods goods, string Operator);

        /// <summary>
        /// 更新目录信息（0失败;1成功） add by zdc 升级后View_Procurecatalog_TB
        /// </summary>
        /// <param name="goods">产品信息</param>
        /// <returns>0失败;1成功</returns>
        int UpdateVPT(View_Procurecatalog_TB vpt, string Operator);
        /// <summary>
        /// 增加目录信息（0失败;1成功） add by zdc 升级后View_Procurecatalog_TB
        /// </summary>
        /// <param name="vpt"></param>
        /// <param name="Operator"></param>
        /// <returns></returns>
        int AddVPT(View_Procurecatalog_TB vpt, string Operator);
        /// <summary>
        /// 添加产品信息（0失败;1成功）
        /// </summary>
        /// <param name="goods">产品信息</param>
        /// </remarks>
        int AddGoods(Goods goods, string Operator);

        /// <summary>
        /// 删除产品信息（0失败;1成功）
        /// </summary>
        /// </remarks>
        int DelGoods(string goodsid, string Operator);

        /// <summary>
        /// 获取生产企业自身的产品信息
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="userType"></param>
        /// <returns></returns>
        System.Data.DataTable GetGoods(string userid);
        /// <summary>
        /// 根据产品编号查询产品信息
        /// add by Meng 2013-03-25
        /// </summary>
        /// <param name="goodsid"></param>
        /// <returns></returns>
        HZ.DrugTrade.Model.Goods GetGoodsInfoByWhere(string goodsid);
        /// <summary>
        /// 更新产品信息
        /// </summary>
        /// <param name="goods"></param>
        /// <returns></returns>
        int UpdateGoodsInfo(HZ.DrugTrade.Model.Goods goods);
        /// <summary>
        /// 获取限价列表
        /// </summary>
        /// <param name="where"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalRecord"></param>
        /// <returns></returns>
        DataTable GetLimitPriceByWhere(string where, int currentPage, int pageSize, out int totalRecord);
        /// <summary>
        /// 根据产品编号获取限价信息
        /// </summary>
        /// <param name="goodsid"></param>
        /// <returns></returns>
        LimitedPrice GetLimitedPriceByID(string goodsid);
        /// <summary>
        /// 更新限价
        /// </summary>
        /// <param name="lp"></param>
        /// <returns></returns>
        int GetUpdatelimitPrice(LimitedPrice lp);
        /// <summary>
        /// 企业确认限价
        /// </summary>
        /// <param name="Goodsid"></param>
        /// <returns></returns>
        int GetConfirmLimitPrice(string Goodsid);
    }
}
